向scrapy中的spider传参,实现增量

有时候需要根据项目的实际需求向spider传递参数来控制spider的运行方式。

比如说,1.根据用户提交的url来控制spider爬取的网站。2.根据需求增量爬取数据。

今天就写一个增量(augmenter)的方式:

Spider参数通过 crawl 命令的 -a 选项来传递,比如:

scrapy crawl xxx -a augmenter=xxxxxx

注:augmenter=不为空

1.首先在spider里添加

注:在网上也看了不少的博客,最后发现*args, **kwargs这两个必须加上,要不然会出现bug,不信的话可以试试哦!

如果想减少代码量的话,可以写到类里面去继承!那这样的话,spider里面就不要在写了!!!要不然就不起作用了!!!

还有

super(eval(self.__class__.__name__), self).__init__(*args, **kwargs)

这里的eval()获取的是类名,这样写必须是最后一个是你要的类名,中间有继承什么的,就会出错!或者直接把类名粘过来!

2.spider实现方式:

这样就实现了简单的增量!增量的方式有很多,常见的:时间、计数、爬取特定的几页!

选择自己需要的增量方式写在这个parse_augmenter()里面,

这样需要从头开始run和增量run就不受影响!

注:工作中的遇到的一些问题,可能我的方法不一定是最好的,大家一起相互交流+扣扣781816703

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值